"""用户认证模块的信号处理器

定义用户相关的信号处理逻辑。
"""

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth import get_user_model
from .models import UserProfile

User = get_user_model()


@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    """用户创建时自动创建用户配置
    
    当新用户注册时，自动为其创建对应的用户配置记录。
    """
    if created:
        UserProfile.objects.create(user=instance)


@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    """用户保存时同时保存用户配置
    
    确保用户配置与用户信息保持同步。
    """
    if hasattr(instance, 'profile'):
        instance.profile.save()